# eric7.Testing.Interfaces.PytestExecutor

Module implementing the executor for the 'pytest' framework.

### Global Attributes

None

### Classes

PytestExecutor | Class implementing the executor for the 'pytest' framework.

### Functions

None

## PytestExecutor

Class implementing the executor for the 'pytest' framework.

### Derived from

TestExecutorBase

### Class Attributes

module
name
runner

### Class Methods

None

### Methods

PytestExecutor | Constructor
__nodeid2testname | Private method to convert a nodeid to a test name.
__nodeid2testpath | Private method to convert a nodeid to a test path list.
__normalizeModuleName | Private method to convert a module name reported by pytest to Python conventions.
__processData | Private slot to process the received data.
createArguments | Public method to create the arguments needed to start the test process.
discover | Public method to start the test discovery process.
finished | Public method handling the unit test process been finished.
getMarkers | Public method to get the list of defined markers.
getVersions | Public method to get the test framework version and version information of its installed plugins.
hasCoverage | Public method to check, if the collection of coverage data is available.
start | Public method to start the testing process.
startDebug | Public method to start the test run with debugger support.
supportsMarkers | Public method to indicate the support for test filtering using markers and/or marker expressions.
supportsPatterns | Public method to indicate the support for test filtering using test name patterns or a test name pattern expression.

### Static Methods

None

#### PytestExecutor (Constructor)

PytestExecutor(testWidget)

Constructor

testWidget (TestingWidget)
  reference to the unit test widget

#### PytestExecutor.__nodeid2testname

__nodeid2testname(nodeid)

Private method to convert a nodeid to a test name.

nodeid (str)
  nodeid to be converted

Return:
  test name

Return Type:
  str

#### PytestExecutor.__nodeid2testpath

__nodeid2testpath(nodeid)

Private method to convert a nodeid to a test path list.

nodeid (str)
  nodeid to be converted

Return:
  test path list

Return Type:
  list of str

#### PytestExecutor.__normalizeModuleName

__normalizeModuleName(name)

Private method to convert a module name reported by pytest to Python conventions.

This method strips the extensions '.pyw' and '.py' first and replaces '/' and '\' thereafter.

name (str)
  module name reported by pytest

Return:
  module name iaw. Python conventions

Return Type:
  str

#### PytestExecutor.__processData

__processData(data)

Private slot to process the received data.

data (dict)
  data object received

#### PytestExecutor.createArguments

createArguments(config)

Public method to create the arguments needed to start the test process.

config (TestConfig)
  configuration for the test execution

Return:
  list of process arguments

Return Type:
  list of str

#### PytestExecutor.discover

discover(config, pythonpath)

Public method to start the test discovery process.

config (TestConfig)
  configuration for the test discovery
pythonpath (list of str)
  list of directories to be added to the Python path

#### PytestExecutor.finished

finished()

Public method handling the unit test process been finished.

This method should read the results (if necessary) and emit the signal testFinished.

#### PytestExecutor.getMarkers

getMarkers(interpreter, workdir)

Public method to get the list of defined markers.

interpreter (str)
  interpreter to be used for the test
workdir (str)
  name of the working directory

Return:
  dictionary containing the marker as key and the associated description as value

Return Type:
  dict

#### PytestExecutor.getVersions

getVersions(interpreter)

Public method to get the test framework version and version information of its installed plugins.

interpreter (str)
  interpreter to be used for the test

Return:
  dictionary containing the framework name and version and the list of available plugins with name and version each

Return Type:
  dict

#### PytestExecutor.hasCoverage

hasCoverage(interpreter)

Public method to check, if the collection of coverage data is available.

interpreter (str)
  interpreter to be used for the test

Return:
  flag indicating the availability of coverage functionality

Return Type:
  bool

#### PytestExecutor.start

start(config, pythonpath)

Public method to start the testing process.

config (TestConfig)
  configuration for the test execution
pythonpath (list of str)
  list of directories to be added to the Python path

#### PytestExecutor.startDebug

startDebug(config, pythonpath, debugger)

Public method to start the test run with debugger support.

config (TestConfig)
  configuration for the test execution
pythonpath (list of str)
  list of directories to be added to the Python path
debugger (DebugUI)
  refference to the debugger interface

#### PytestExecutor.supportsMarkers

supportsMarkers(_interpreter)

Public method to indicate the support for test filtering using markers and/or marker expressions.

_interpreter (str)
  interpreter to be used for the test (unused)

Return:
  flag indicating support of markers

Return Type:
  bool

#### PytestExecutor.supportsPatterns

supportsPatterns(_interpreter)

Public method to indicate the support for test filtering using test name patterns or a test name pattern expression.

_interpreter (str)
  interpreter to be used for the test (unused)

Return:
  flag indicating support of markers

Return Type:
  bool

Up